""" Compatibility Support for Python 2.7 and earlier """ import sys import platform from setuptools.extern import six def get_all_headers(message, key): """ Given an HTTPMessage, return all headers matching a given key. """ return message.get_all(key) if six.PY2: def get_all_headers(message, key): # noqa return message.getheaders(key) linux_py2_ascii = ( platform.system() == 'Linux' and six.PY2 ) rmtree_safe = str if linux_py2_ascii else lambda x: x """Workaround for http://bugs.python.org/issue24672""" try: from ._imp import find_module, PY_COMPILED, PY_FROZEN, PY_SOURCE from ._imp import get_frozen_object, get_module except ImportError: import imp from imp import PY_COMPILED, PY_FROZEN, PY_SOURCE # noqa def find_module(module, paths=None): """Just like 'imp.find_module()', but with package support""" parts = module.split('.') while parts: part = parts.pop(0) f, path, (suffix, mode, kind) = info = imp.find_module(part, paths) if kind == imp.PKG_DIRECTORY: parts = parts or ['__init__'] paths = [path] elif parts: raise ImportError("Can't find %r in %s" % (parts, module)) return info def get_frozen_object(module, paths): return imp.get_frozen_object(module) def get_module(module, paths, info): imp.load_module(module, *info) return sys.modules[module]